#!/bin/bash

# 脚本功能：处理二进制文件，复制到~/local/bin并赋予执行权限

# 获取参数
BIN_FILE=$1     # 二进制文件路径
BINARY_NAME=$2  # 可执行文件名（可选，默认使用原文件名）

# 检查必要参数
if [ -z "$BIN_FILE" ]; then
  echo "用法: $0 <二进制文件路径> [可执行文件名]"
  exit 1
fi

# 固定目标目录
TARGET_DIR="$HOME/local/bin"

# 检查二进制文件是否存在
if [ ! -f "$BIN_FILE" ]; then
  echo "错误: 文件 $BIN_FILE 不存在！"
  exit 1
fi

# 如果未指定新文件名，使用原文件名
if [ -z "$BINARY_NAME" ]; then
  BINARY_NAME=$(basename "$BIN_FILE")
fi

# 检查并创建目标目录
if [ ! -d "$TARGET_DIR" ]; then
  echo "创建目标目录: $TARGET_DIR"
  mkdir -p "$TARGET_DIR"
fi

# 复制二进制文件到目标目录
echo "复制 $BIN_FILE 到 $TARGET_DIR/$BINARY_NAME..."
cp "$BIN_FILE" "$TARGET_DIR/$BINARY_NAME"

# 赋予执行权限
echo "赋予 $BINARY_NAME 执行权限..."
chmod +x "$TARGET_DIR/$BINARY_NAME"

# 添加目录到PATH（如果还未添加）
if ! grep -q "export PATH=\"\$PATH:$TARGET_DIR\"" ~/.bashrc; then
  echo "添加 $TARGET_DIR 到 PATH 环境变量..."
  echo "export PATH=\"\$PATH:$TARGET_DIR\"" >> ~/.bashrc
  echo "已将 $TARGET_DIR 添加到 ~/.bashrc"
fi

# 应用更改到当前会话
echo "应用更改到当前会话..."
export PATH="$PATH:$TARGET_DIR"

# 完成
echo "完成！$BINARY_NAME 已安装到 $TARGET_DIR。"
echo "目录 $TARGET_DIR 已添加到 PATH。"
echo "重新登录或执行 'source ~/.bashrc' 以使更改在新终端中生效。"
echo "现在可直接运行 $BINARY_NAME 了！" 